﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelo.Modulos.ClasesModelado;

namespace Logica.Modulos.ClasesLogica
{
    public class Perfil_PermisoLog:Negocio
    {
        public void ActualizarPermiso_Perfil(PerfilesMod obj,List<int> lista,int idPerfil)
        {
            try
            {
                this.IniciarTransaccion();

                PerfilesBD objBD = new PerfilesBD();

               

                obj.IdPerfil = idPerfil;
                int IdPermiso;
                PermisosBD objPermisosBD = new PermisosBD();
                for (int i = 0; i < lista.Count; i++)
                {  
                    IdPermiso = lista[i];
                    objPermisosBD.InsertarPerfil_Permiso(this.comando, obj,IdPermiso);
                }
               
                
                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public void InsertarPermiso_Perfil(PerfilesMod obj, List<int> lista)
        {
            try
            {
                this.IniciarTransaccion();

                PerfilesBD objBD = new PerfilesBD();



                obj.IdPerfil = objBD.InsertarPerfil(this.comando,obj);
                int IdPermiso;
                PermisosBD objPermisosBD = new PermisosBD();
                for (int i = 0; i < lista.Count; i++)
                {
                    IdPermiso = lista[i];
                    objPermisosBD.InsertarPerfil_Permiso(this.comando, obj, IdPermiso);
                }


                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

       
        public List<PerfilesMod> ConsultarPerfiles()
        {
            try
            {
                this.AbrirConexion();

                PerfilesBD objBD = new PerfilesBD();

                List<PerfilesMod> lista = objBD.ConsultarPerfil(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public void EliminarPerfil(PerfilesMod obj)
        {
            try
            {
                this.IniciarTransaccion();

                PerfilesBD objBD = new PerfilesBD();
                objBD.EliminarPerfil_Permiso(this.comando, obj);

                objBD.EliminarPerfil(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public void EliminarPerfil_Permiso(PerfilesMod obj)
        {
            try
            {
                this.IniciarTransaccion();

                PerfilesBD objBD = new PerfilesBD();
                objBD.EliminarPerfil_Permiso(this.comando, obj);

                

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public List<PerfilesMod> ConsultarPerfilesId(PerfilesMod objs)
        {
            try
            {
                this.AbrirConexion();

                PerfilesBD objBD = new PerfilesBD();

                List<PerfilesMod> lista = objBD.ConsultarPerfilId(this.comando, objs);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<PerfilesMod> ConsultarPermisoIdPerfil(PerfilesMod objs)
        {
            try
            {
                this.AbrirConexion();

                PermisosBD objBD = new PermisosBD();

                List<PerfilesMod> lista = objBD.ConsultarPermisoIdPerfil(this.comando, objs);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

     
    }
}
